#ifndef _VN_SFML_GAME_TIME_H_
#define _VN_SFML_GAME_TIME_H_

#include "SFML\System.hpp"
#include "GameTime.h"

class SFMLGameTime : public GameTime
{
public:
	SFMLGameTime(void);
	~SFMLGameTime(void);

	virtual void update();	// run this ONCE ONLY in the main game loop in Core.cpp

	virtual float getTotalTimeAsSeconds() const;
	virtual int getTotalTimeAsMilliseconds() const;
	virtual long long getTotalTimeAsMicroseconds() const;
	virtual float getElapsedTimeAsSeconds() const;
	virtual int getElapsedTimeAsMilliseconds() const;
	virtual long long getElapsedTimeAsMicroseconds() const;
	virtual float deltaTime() const;

protected:
	sf::Clock m_elapsedTimeClock;
	sf::Clock m_totalTimeClock;
	sf::Time m_elapsedTime;
	sf::Time m_totalTime;
	float m_deltaTime;
};

#endif // _VN_SFML_GAME_TIME_H_